home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Essentials / Developer Essentials May91 / MPW Interfaces & Libraries 3.2 / AIncludes / SysEqu.a < prev    next >
Encoding:
Text File  |  1991-04-17  |  54.9 KB  |  1,391 lines  |  [TEXT/MPS ]

  1. ; Version: 3.25
  2. ; Created: Friday, October 20, 1989 at 9:54:34 PM
  3. ;
  4. ; File: SysEqu.a
  5. ;
  6. ; Assembler Interface to the Macintosh Libraries
  7. ; Copyright Apple Computer, Inc. 1986-1990
  8. ; All Rights Reserved
  9. ;
  10. ;___________________________________________________________________________
  11. ;
  12. ; System Equates -- This file defines the low-level equates for the
  13. ; Macintosh software. This is divided into two pieces for
  14. ; assembly space and speed considerations. The wholeSystem flag is used
  15. ; to include the less common equates which realizes a complete set. The
  16. ; comments marked with ";+" denote categories or managers. Record
  17. ; stuctures may have additional private equates which are defined by and
  18. ; reserved for use by Apple Computer, Inc.
  19. ;
  20. ;___________________________________________________________________________
  21.  
  22.     IF &TYPE('__IncludingSysEqu__') = 'UNDEFINED' THEN
  23. __IncludingSysEqu__    SET    1
  24.  
  25.                   IF          (&TYPE('wholeSystem') = 'UNDEFINED') THEN
  26. wholeSystem       EQU         1
  27.                   ENDIF
  28.  
  29. ; ioFlags:
  30. noCacheBit        EQU             5                     ; disable cacheing for this operation  <S333/15Dec87>
  31. noCache            EQU          $20                 ; constant for noCacheBit   <S333/15Dec87>
  32.  
  33. PCDeskPat         EQU         $20B                      ; desktop pat, top bit only! others are in use
  34. HiKeyLast         EQU         $216                      ; Same as KbdVars
  35. KbdLast           EQU         $218                      ; Same as KbdVars+2
  36. ExpandMem         EQU         $2B6                      ; pointer to expanded memory block
  37.  
  38. ; Test Manager EQUs
  39. videoMagic        EQU         $5A932BC7                 ; When VideoInfoOk contains this value, the video card is ok (CritErr).
  40.  
  41. ; Unit table size constants (Used in startInit.a)
  42. unitEntries       EQU         64                        ; default # of entries in unit table
  43. maxUTEntries      EQU         unitEntries+64            ; Set Max higher so the table can grow.
  44. bgnSlotUnit       EQU         48                        ; default start unit number for slots.
  45. bgnSlotRef        EQU         -(bgnSlotUnit+1)          ; default start RefNum for slots.
  46.  
  47. ; Start Boot state constants.
  48. sbState0          EQU         0                         ;StartBoot code is at state-0.
  49. sbState1          EQU         1                         ;StartBoot code is at state-1.
  50.  
  51. ; system alarm
  52.  
  53. alrmFlEnable      EQU         0                         ; 1 => alarm clock mechanism is triggered
  54. ; Apple Desktop Bus
  55. JADBProc          EQU         1720                      ; (long) procedure called on ADBReInit
  56.  
  57. ; start at $C00
  58.  
  59. SCSIBase          EQU         $0C00                     ; (long) base address for SCSI chip read
  60. SCSIDMA           EQU         $0C04                     ; (long) base address for SCSI DMA
  61. SCSIHsk           EQU         $0C08                     ; (long) base address for SCSI handshake
  62. SCSIGlobals       EQU         $0C0C                     ; (long) ptr for SCSI mgr locals
  63. RGBBlack          EQU         $0C10                     ; (6 bytes) the black field for color
  64. RGBWhite          EQU         $0C16                     ; (6 bytes) the white field for color
  65.  
  66. RowBits           EQU         $0C20                     ; (word) screen horizontal pixels
  67. ColLines          EQU         $0C22                     ; (word) screen vertical pixels
  68. ScreenBytes       EQU         $0C24                     ; (long) total screen bytes
  69.  
  70.  
  71. NMIFlag           EQU         $0C2C                     ; (byte) flag for NMI debounce
  72. VidType           EQU         $0C2D                     ; (byte) video board type ID
  73. ScrnInval        EQU            $0C2D                    ; (byte) replaces obscure VidType.  When $FFFF, scrn resource is
  74.                                                     ;        valid.  When cleared, scrn resource is invalid.
  75. VidMode           EQU         $0C2E                     ; (byte) video mode (4=4bit color)
  76. SCSIPoll          EQU         $0C2F                     ; (byte) poll for device zero only once.
  77.  
  78.  
  79. SEVarBase         EQU         $0C30                     ; ($0C30-0CB0) 128 bytes for sys err data
  80. ; note!!! - if changed, need to change also in hwequ file
  81.  
  82. MMUFlags          EQU         $0CB0                     ; (byte) cleared to zero (reserved for future use)
  83. MMUType           EQU         $0CB1                     ; (byte) kind of MMU present
  84. MMU32bit          EQU         $0CB2                     ; (byte) boolean reflecting current machine MMU mode
  85. MMUTbl            EQU         $0CB4                     ; (long) pointer to MMU Mapping table
  86. MMUTblSize        EQU         $0CB8                     ; (long) size of the 24 bit mode MMU mapping table
  87. MMU24Info         EQU         $0CB4                     ; (long) ptr to 24 bit mode MMU configuration info
  88. MMU32Info         EQU         $0CB8                     ; (long) ptr to 32 bit mode MMU configuration info
  89. SInfoPtr          EQU         $0CBC                     ; (long) pointer to Slot manager information
  90. ASCBase           EQU         $0CC0                     ; (long) pointer to Sound Chip
  91. SMGlobals         EQU         $0CC4                     ; (long) pointer to Sound Manager Globals
  92. TheGDevice        EQU         $0CC8                     ; (long) the current graphics device
  93. CQDGlobals        EQU         $0CCC                     ; (long) quickDraw global extensions
  94.  
  95. ; TEMPORARY EQUATE
  96. DeskCPat          EQU         $0CD8                     ;[PixPatHandle] Handle to desk pixPat
  97.  
  98. TimeVIADB         EQU         $0CEA                     ; (word) number of iter's of VIA access & DBRA.    <1.3>
  99. VIA2               EQU         $0CEC                     ; VIA2 base address [pointer]                    <2.7>
  100. RBV                EQU            VIA2                    ; RBV base address [pointer] share with VIA2    <2.7>
  101. VIA2RBV           EQU         VIA2                     ; VIA2 or RBV base address [pointer]            <1.3><2.7>
  102. OSS                EQU            VIA2                    ; OSS base address [pointer] share with VIA2    <2.7>
  103. VIA2RBVOSS       EQU         VIA2                     ; VIA2 or RBV or OSS base address [pointer]        <2.7>
  104. VISA            EQU            VIA2                    ; VISA base address [pointer]                    <11>
  105. V8                EQU            VIA2                    ; V8 base address [pointer]
  106.  
  107. WarmStart         EQU         $0CFC                     ; (long) flag to indicate it is a warm start
  108. wmStConst         EQU         $574C5343                 ; warm start constant
  109. sleepConst        EQU         'SARA'                    ; waking from sleep constant
  110. TimeDBRA          EQU         $0D00                     ; (word) number of iterations of DBRA per millisecond
  111. TimeSCCDB         EQU         $0D02                     ; (word) number of iter's of SCC access & DBRA.
  112.  
  113. PmgrBase          EQU         $0D18                     ; Lomem pointer to power manager vars
  114.  
  115. TableSeed         EQU         $0D20                     ; (long) seed value for color table ID's
  116. SRsrcTblPtr       EQU         $0D24                     ; (long) pointer to slot resource table.
  117. JVBLTask          EQU         $0D28                     ; vector to slot VBL task interrupt handler
  118. WMgrCPort         EQU         $0D2C                     ; window manager color port 
  119. VertRRate         EQU         $0D30                     ; (word) Vertical refresh rate for start manager.
  120.  
  121. ChunkyDepth       EQU         $0D60                     ; depth of the pixels
  122. CrsrPtr           EQU         $0D62                     ; pointer to cursor save area
  123. PortList          EQU         $0D66                     ; list of grafports 
  124. MickeyBytes       EQU         $0D6A                     ; long pointer to cursor stuff
  125. QDErr             EQU         $0D6E                     ; QuickDraw error code [word]
  126. VIA2DT            EQU         $0D70                     ; 32 bytes for VIA2 dispatch table for NuMac
  127.  
  128. SInitFlags        EQU         $0D90                     ; StartInit.a flags [word]
  129. DTQueue           EQU         $0D92                     ; (10 bytes) deferred task queue header
  130. DTQFlags          EQU         $0D92                     ; flag word for DTQueue
  131. DTskQHdr          EQU         $0D94                     ; ptr to head of queue
  132. DTskQTail         EQU         $0D98                     ; ptr to tail of queue
  133. JDTInstall        EQU         $0D9C                     ; (long) ptr to deferred task install routine
  134. HiliteRGB         EQU         $0DA0                     ; 6 bytes: rgb of hilite color
  135. DSCtrAdj          EQU         $0DA8                     ; (long) Center adjust for DS rect.
  136. IconTLAddr        EQU         $0DAC                     ; (long) pointer to where start icons are to be put.
  137. VideoInfoOK       EQU         $0DB0                     ; (long) Signals to CritErr that the Video card is ok
  138. EndSRTPtr         EQU         $0DB4                     ; (long) Pointer to the end of the Slot Resource Table (Not the SRT buffer).
  139. SDMJmpTblPtr      EQU         $0DB8                     ; (long) Pointer to the SDM jump table
  140. JSwapMMU          EQU         $0DBC                     ; (long) jump vector to SwapMMU routine
  141. SdmBusErr         EQU         $0DC0                     ; (long) Pointer to the SDM busErr handler
  142. LastTxGDevice     EQU         $0DC4                     ; (long) copy of TheGDevice set up for fast text measure
  143.  
  144. NewCrsrJTbl       EQU         $88C                      ; location of new crsr jump vectors
  145. NewCrsrJCnt       EQU         1                         ; 2 new vectors
  146. JAllocCrsr        EQU         $88C                      ; (long) vector to routine that allocates cursor
  147. JSetCCrsr         EQU         $890                      ; (long) vector to routine that sets color cursor
  148. JOpcodeProc       EQU         $894                      ; (long) vector to process new picture opcodes
  149. CRSRBASE          EQU         $898                      ; (long) scrnBase for cursor
  150. CrsrDevice        EQU         $89C                      ; (long) current cursor device
  151. SrcDevice         EQU         $8A0                      ; (LONG) Src device for Stretchbits
  152. MainDevice        EQU         $8A4                      ; (long) the main screen device
  153. DeviceList        EQU         $8A8                      ; (long) list of display devices
  154. CRSRROW           EQU         $8AC                      ; (word) rowbytes for current cursor screen
  155. QDColors          EQU         $8B0                      ; (long) handle to default colors
  156.  
  157. ; QuickDraw
  158.  
  159. HiliteMode        EQU         $938                      ; used for color highlighting
  160.  
  161.  
  162. ; Exception vectors
  163.  
  164. BusErrVct         EQU         $08                       ; bus error vector
  165. AddrVector        EQU            $C                ; address error
  166. IlglVector        EQU            $10                ; illegal instruction
  167. ZeroVector        EQU            $14                ; divide by 0
  168. CheckVector        EQU            $18                ; check bounds error
  169. TrapVVector        EQU            $1C                ; trapv location
  170. PrivlgVector    EQU            $20                ; privilege violation
  171. TraceVector        EQU            $24                ; trace exception vector
  172. Line1010          EQU         $28               ; 1010 emulator trap (system routines)
  173. Line1111          EQU         $2C               ; 1111 emulator trap (reserved)
  174. DebugVector        EQU            Line1111        ; debug instructions
  175. FmtErrVect        EQU         $38               ; format error vector for 68010/68020
  176. BadIntVector    EQU            $60                ; spurious interrupt
  177. AutoInt1          EQU         $64               ; level 1 auto-vector
  178. AutoInt2          EQU         $68               ; level 2 auto-vector
  179. AutoInt3          EQU         $6C               ; level 3 auto-vector
  180. AutoInt4          EQU         $70               ; level 4 auto-vector
  181. AutoInt5          EQU         $74               ; level 5 auto-vector
  182. AutoInt6          EQU         $78               ; level 6 auto-vector
  183. AutoInt7          EQU         $7C               ; level 7 auto-vector
  184. BkptVector        EQU            $B8                ; break loc
  185.  
  186. ;-------------
  187. ; MMU Equates
  188. ;-------------
  189.  
  190. ; MMU Mode bits
  191. ;
  192. ; type MMU_Mode = (true32b,false32b)
  193.  
  194. false32b          EQU         0                         ;modified
  195. true32b           EQU         1
  196.  
  197. ;+ System Error Handler
  198.  
  199. RestProc          EQU         $A8C                      ; Resume procedure f InitDialogs [pointer]
  200.  
  201. ; equates for queue elements
  202.  
  203. sIQType           EQU         6                         ; slot interrupt queue element ID
  204.  
  205. ;Default Startup
  206.  
  207. ;DefaultRec offsets for set/get default startup
  208.  
  209. drDriveNum        EQU         0                         ;[INTEGER]
  210. drRefNum          EQU         2                         ;[INTEGER]
  211.  
  212. ; Deferred Task Queue Element
  213.  
  214. dtQType           EQU         7                         ; deferred task queue element ID
  215. inDTQ             EQU         6                         ; bit index for "in deferred task" flag
  216. dtLink            EQU         0                         ; Link to next element [pointer]
  217. dtType            EQU         4                         ; Unique ID for validity [word]
  218. dtFlags           EQU         6                         ; optional flags [word]
  219. dtAddr            EQU         8                         ; service routine [pointer]
  220. dtParm            EQU         $C                        ; optional A1 parameter [long]
  221. dtResrvd          EQU         $10                       ; reserved [long]
  222. dtQElSize         EQU         20                        ; length of DT queue element in bytes
  223.  
  224. ; Notification Manager Queue Element
  225. nmType            EQU         8                         ; Notification request queue element ID
  226.  
  227. ; Topanga video mode for Esprit
  228. NTSC               EQU         $B3E                      ; A byte                        <v2.1>
  229.  
  230.  
  231. ;+ ROM Equates
  232.  
  233. ROM85             EQU         $28E                      ; (word) actually high bit - 0 for ROM vers $75 (sic) and later
  234. ROMMapHndl        EQU         $B06                      ; (long) handle of ROM resource map
  235.  
  236. ;+ Screen Equates
  237.  
  238. ScrVRes           EQU         $102                      ; screen vertical dots/inch [word]
  239. ScrHRes           EQU         $104                      ; screen horizontal dots/inch [word]
  240. ScrnBase          EQU         $824                      ; Screen Base [pointer]
  241. ScreenRow         EQU         $106                      ; rowBytes of screen [word]
  242.  
  243.  
  244. ; Mouse/Keyboard
  245.  
  246. MBTicks           EQU         $16E                      ; tick count @ last mouse button [long]
  247. JKybdTask         EQU         $21A                      ; keyboard VBL task hook [pointer]
  248. KeyLast           EQU         $184                      ; ASCII for last valid keycode [word]
  249. KeyTime           EQU         $186                      ; tickcount when KEYLAST was rec'd [long]
  250. KeyRepTime        EQU         $18A                      ; tickcount when key was last repeated [long]
  251.  
  252. ;+ Parameter RAM (a twenty byte copy of the real parameter ram).
  253.  
  254. SPConfig          EQU         $1FB                      ; config bits: 4-7 A, 0-3 B (see use type below)
  255. SPPortA           EQU         $1FC                      ; SCC port A configuration [word]
  256. SPPortB           EQU         $1FE                      ; SCC port B configuration [word]
  257.  
  258. ; SCC Serial Chip Addresses
  259.  
  260. SCCRd             EQU         $1D8                      ; SCC base read address [pointer]
  261. SCCWr             EQU         $1DC                      ; SCC base write address [pointer]
  262.  
  263. ; Serial port use type
  264.  
  265. useFree           EQU         0                         ; Use undefined
  266. useATalk          EQU         1                         ; AppleTalk
  267. useAsync          EQU         2                         ; Async
  268. useExtClk         EQU         3                         ; externally clocked
  269.  
  270. ; Unpacked, user versions of parameter ram
  271.  
  272. DoubleTime        EQU         $2F0                      ; double click ticks [long]
  273. CaretTime         EQU         $2F4                      ; caret blink ticks [long]
  274. KeyThresh         EQU         $18E                      ; threshold for key repeat [word]
  275. KeyRepThresh      EQU         $190                      ; key repeat speed [word]
  276. SdVolume          EQU         $260                      ; Global volume(sound) control [byte]
  277.  
  278.  
  279. ;+ System Clocks
  280.  
  281. Ticks             EQU         $16A                      ; Tick count, time since boot [long]
  282. Time              EQU         $20C                      ; clock time (extrapolated) [long]
  283.  
  284.  
  285. ;+ Cursor
  286.  
  287. iBeamCursor       EQU         1                         ; text selection cursor
  288. crossCursor       EQU         2                         ; for structured selection
  289. plusCursor        EQU         3                         ; for drawing graphics
  290. watchCursor       EQU         4                         ; for indicating a long delay
  291.  
  292.  
  293. ; result codes for Relstring call
  294.  
  295. sortsBefore       EQU         -1                        ; str1 < str2
  296. sortsEqual        EQU         0                         ; str1 = str2
  297. sortsAfter        EQU         1                         ; str1 > str2
  298.  
  299. ;+ Queue Package
  300.  
  301. qInUse            EQU         7                         ; queue-in-use flag bit
  302.  
  303. ; Header Record
  304.  
  305. qHeadSize         EQU         $A                        ; queue header size
  306. qFlags            EQU         0                         ; miscellaneous flags [word]
  307. qHead             EQU         2                         ; first element in queue [pointer]
  308. qTail             EQU         6                         ; last element in queue [pointer]
  309.  
  310. ; General Purpose Queue Element Definition
  311.  
  312. qLink             EQU         0                         ; link to next queue element [pointer]
  313. qType             EQU         4                         ; queue element type [word]
  314.  
  315.  
  316. ;+ Event Manager
  317.  
  318. evType            EQU         4                         ; event queue element is type 4
  319.  
  320. ; Event Type Numbers (in EvtNum)
  321.  
  322. everyEvent        EQU         -1
  323. nullEvt           EQU         0                         ; event 0 is the null event
  324. mButDwnEvt        EQU         1                         ; mouse button down is event 1
  325. mButUpEvt         EQU         2                         ; mouse button up is event 2
  326. keyDwnEvt         EQU         3                         ; key down is event 3
  327. keyUpEvt          EQU         4                         ; key up is event 4
  328. autoKeyEvt        EQU         5                         ; auto-repeated key is event 5
  329. updatEvt          EQU         6                         ; update event
  330. diskInsertEvt     EQU         7                         ; disk-inserted event
  331. activateEvt       EQU         8                         ; activate/deactive event
  332. osEvt            EQU            $F                        ; suspend/resume/mousemoved
  333. kHighLevelEvent    EQU            $17                        ; high-level event
  334.  
  335. ; Event Mask Equates
  336. ; (same constant names are masks rather than bit numbers in higher level languages.
  337. ; Only special one is highLevelEvtBit, since it has only indirect correspondence to
  338. ; kHighLevelEvent. 
  339.  
  340. highLevelEvtBit    EQU            $A                        ; for kHighLevelEvent
  341.  
  342. ; Event Message Equates
  343.  
  344. charCodeMask          EQU         $000000FF
  345. keyCodeMask           EQU         $0000FF00
  346. adbAddrMask           EQU         $00FF0000
  347. osEvtMessageMask       EQU         $FF000000
  348.  
  349. ; osEvt Messages.  Event (sub)code is in the high byte of the message field.
  350. mouseMovedMessage        EQU     $FA;
  351. suspendResumeMessage    EQU     $01;
  352. resumeFlag                EQU     0    ; Bit 0 of message field indicates resume vs suspend }
  353. convertClipboardFlag    EQU     1    ; Bit 1 in resume message indicates clipboard change }
  354.  
  355. ; Modifier bits in event record
  356. ; (same constant names are masks rather than bit numbers in higher level languages.)
  357.  
  358. activeFlag        EQU         $0                        ; activate? (activateEvt and mouseDown)
  359. btnState          EQU         $7                        ; state of button?
  360. cmdKey            EQU         $8                        ; command key down?
  361. shiftKey          EQU         $9                        ; shift key down?
  362. alphaLock         EQU         $A                        ; alpha lock down?
  363. optionKey         EQU         $B                        ; option key down?
  364. controlKey        EQU         $C                        ; control key down?
  365.  
  366. ; Event Record Definition
  367.  
  368. evtNum            EQU         0                         ; event code [word]
  369. evtMessage        EQU         2                         ; event message [long]
  370. evtTicks          EQU         6                         ; ticks since startup [long]
  371. evtMouse          EQU         $A                        ; mouse location [long]
  372. evtMeta           EQU         $E                        ; state of modifier keys [byte]
  373. evtMBut           EQU         $F                        ; state of mouse button [byte]
  374. evtBlkSize        EQU         $10                       ; size in bytes of the event record
  375. MonkeyLives       EQU         $100                      ; monkey lives if >= 0 [word]
  376. SEvtEnb           EQU         $15C                      ; enable SysEvent calls from GNE [byte]
  377. JournalFlag       EQU         $8DE                      ; journaling state [word]
  378. JournalRef        EQU         $8E8                      ; Journalling driver's refnum [word]
  379.  
  380. ; Obsolete Event Manager Equates
  381.  
  382. netWorkEvt        EQU         $A                        ; network event
  383. ioDrvrEvt         EQU         $B                        ; driver-defined event
  384. app1Evt           EQU         $C                        ; application defined events
  385. app2Evt           EQU         $D
  386. app3Evt           EQU         $E
  387. app4Evt           EQU         $F
  388.  
  389. ;+ Memory Manager
  390.  
  391. ; Master pointer bits for handles - USE _HLock, _HPurge, etc. for portability
  392.  
  393. lock              EQU         7                         ; lock bit in a master pointer
  394. purge             EQU         6                         ; bit for purgeable/unpurgeable
  395. resource          EQU         5                         ; bit to flag a resource handle
  396.  
  397.  
  398. BufPtr            EQU         $10C                      ; top of application memory [pointer]
  399. StkLowPt          EQU         $110                      ; Lowest stack as measured in VBL task [pointer]
  400. TheZone           EQU         $118                      ; current heap zone [pointer]
  401. ApplLimit         EQU         $130                      ; application limit [pointer]
  402. SysZone           EQU         $2A6                      ; system heap zone [pointer]
  403. ApplZone          EQU         $2AA                      ; application heap zone [pointer]
  404. HeapEnd           EQU         $114                      ; end of heap [pointer]
  405. HiHeapMark        EQU         $BAE                      ; (long) highest address used by a zone below sp
  406. MemErr            EQU         $220                      ; last memory manager error [word]
  407. maxSize           EQU         $800000                   ; outrageously large memory mgr request
  408. dfltStackSize     EQU         $00002000                 ; 8K size for stack
  409. mnStackSize       EQU         $00000400                 ; 1K minimum size for stack
  410.  
  411. ; _InitZone argument table.
  412.  
  413. startPtr          EQU         0                         ; Start address for zone [pointer]
  414. limitPtr          EQU         4                         ; Limit address for zone [pointer]
  415. cMoreMasters      EQU         8                         ; Number of masters to allocate at time [word]
  416. pGrowZone         EQU         10                        ; growZone procedure [pointer]
  417.  
  418. ; Control/Status Call Codes
  419.  
  420. killCode          EQU         1                         ; KillIO code
  421. drvStsCode        EQU         8                         ; status call code for drive status
  422. ejectCode         EQU         7                         ; control call eject code
  423. tgBuffCode        EQU         8                         ; set tag buffer code
  424.  
  425. ; Driver flags, (Bit definitions for DCtlFlags byte)
  426.  
  427. dReadEnable       EQU         0                         ; enabled for read operations
  428. dWritEnable       EQU         1                         ; enabled for writing
  429. dCtlEnable        EQU         2                         ; enabled for control operations
  430. dStatEnable       EQU         3                         ; enabled for status operations
  431. dNeedGoodBye      EQU         4                         ; needs a "goodbye kiss"
  432. dNeedTime         EQU         5                         ; needs "main thread" time
  433. dNeedLock         EQU         6                         ; needs to be accessed at interrupt level
  434.  
  435. ; Run-Time flags, (Bit definitions for DCtlFlags+1 byte)
  436.  
  437. dOpened           EQU         5                         ; bit to mark driver 'Open'
  438. dRAMBased         EQU         6                         ; 1=RAM-based Driver, 0=ROM-based
  439. drvrActive        EQU         7                         ; bit to mark the driver active
  440.  
  441. ; Drive queue element offsets
  442.  
  443. dQDrive           EQU         $6                        ; drive number [word]
  444. dQRefNum          EQU         $8                        ; driver refnum [word]
  445. dQFSID            EQU         $A                        ; file system handling this drive [word]
  446. dQDrvSz           EQU         $C                        ; number of blocks this drive [word]
  447. dQDrvSz2          EQU         $E                        ; if qType = 1, high word of drive size
  448.  
  449. ; Queue Element Type Definitions
  450.  
  451. ioQType           EQU         2                         ; I/O queue element is type 2
  452. drvQType          EQU         3                         ; timer queue element is type 3
  453. fsQType           EQU         5                         ; File System VCB element
  454. slpQType        EQU            $10                        ; Sleep queue element is type 16        <v1.2>
  455. btQType            EQU            21                        ; B*Tree Manager
  456.  
  457. ; Device Control Entry Definition
  458. ;dCtlEntrySize used to be only 40 bytes!
  459.  
  460. dCtlEntrySize     EQU         $34                       ; length of a DCE [52 bytes]
  461. dCtlDriver        EQU         0                         ; driver [handle]
  462. dCtlFlags         EQU         4                         ; flags [word]
  463. dCtlQueue         EQU         6                         ; queue header
  464. dCtlQHead         EQU         8                         ; queue first-element [pointer]
  465. dCtlQTail         EQU         $C                        ; queue last-element [pointer]
  466. dCtlPosition      EQU         $10                       ; position [long]
  467. dCtlStorage       EQU         $14                       ; driver's private storage [handle]
  468. dCtlRefNum        EQU         $18                       ; refNum of this driver [word]
  469. dCtlCurTicks      EQU         $1A                       ; counter for timing systemTask calls [long]
  470. dCtlWindow        EQU         $1E                       ; driver's window (if any) [pointer]
  471. dCtlDelay         EQU         $22                       ; number of ticks between sysTask calls [word]
  472. dCtlEMask         EQU         $24                       ; desk accessory event mask [word]
  473. dCtlMenu          EQU         $26                       ; menu ID associated with driver [word]
  474. dCtlSlot          EQU         $28                       ; device slot Number [byte]
  475. dCtlSlotId        EQU         $29                       ; device Id within slot [byte]
  476. dCtlDevBase       EQU         $2A                       ; driver scratch ptr/offset from base to device [long]
  477. dCtlOwner         EQU         $2E                       ; ptr to task control block(ownership) [Ptr]
  478. dCtlExtDev        EQU         $32                       ; Id of external device [byte]
  479.  
  480.  
  481. ; Driver Globals
  482.  
  483. UTableBase        EQU         $11C                      ; unit I/O table [pointer]
  484. UnitNtryCnt       EQU         $1D2                      ; count of entries in unit table [word]
  485. JFetch            EQU         $8F4                      ; fetch a byte routine for drivers [pointer]
  486. JStash            EQU         $8F8                      ; stash a byte routine for drivers [pointer]
  487. JIODone           EQU         $8FC                      ; IODone entry location [pointer]
  488.  
  489. ;Chooser
  490.  
  491. chooserID         EQU         1                         ; caller value for the chooser
  492.  
  493. ;+ I/O System
  494.  
  495. ; File positioning modes for ioPosMode field of I/O record
  496.  
  497. fsAtMark          EQU         0                         ; at current position of mark
  498. fsFromStart       EQU         1                         ; offset relative to beginning of file
  499. fsFromLEOF        EQU         2                         ; offset relative to logical end-of-file
  500. fsFromMark        EQU         3                         ; offset relative to current mark
  501. rdVerify          EQU         $40                       ; read verify mode
  502.  
  503. ; Permission values for ioPermssn field of I/O record
  504.  
  505. fsCurPerm         EQU         0                         ; whatever is currently allowed
  506. fsRdPerm          EQU         1                         ; request to read only
  507. fsWrPerm          EQU         2                         ; request to write only
  508. fsRdWrPerm        EQU         3                         ; request to read and write
  509. fsRdWrShPerm      EQU         4                         ; request for shared read and write
  510.  
  511. ; I/O record (general fields with trap-specific ones listed below)
  512.  
  513. ioQElSize         EQU         $32                       ; length of I/O parameter block [50 bytes]
  514. ioLink            EQU         $0                        ; queue link in header [pointer]
  515. ioType            EQU         $4                        ; type for safety check [byte]
  516. ioTrap            EQU         $6                        ; the trap [word]
  517. ioCmdAddr         EQU         $8                        ; address to dispatch to [pointer]
  518. ioCompletion      EQU         $C                        ; completion routine [pointer]
  519. ioResult          EQU         $10                       ; I/O result code [word]
  520. ioFileName        EQU         $12                       ; file name pointer [pointer]
  521. ioVRefNum         EQU         $16                       ; volume refnum [word]
  522. ioDrvNum          EQU         $16                       ; drive number [word]
  523. ioRefNum          EQU         $18                       ; file reference number [word]
  524. ioFileType        EQU         $1A                       ; specified along with FileName [byte]
  525.  
  526. ; specific fields for _Read, _Write
  527.  
  528. ioBuffer          EQU         $20                       ; data buffer [pointer]
  529. ioByteCount       EQU         $24                       ; requested byte count [long]
  530. ioNumDone         EQU         $28                       ; actual byte count completed [long]
  531. ioPosMode         EQU         $2C                       ; initial file positioning mode/eol char [word]
  532. ioPosOffset       EQU         $2E                       ; file position offset [long]
  533.  
  534. ; specific fields for _Allocate
  535.  
  536. ioReqCount        EQU         $24                       ; requested new size [long]
  537. ioActCount        EQU         $28                       ; actual byte count allocated [long]
  538.  
  539. ; specific fields for _Open
  540.  
  541. ioPermssn         EQU         $1B                       ; permissions [byte]
  542. ioOwnBuf          EQU         $1C                       ; "private" 522-byte buffer [pointer]
  543.  
  544. ; specific fields for _Rename
  545.  
  546. ioNewName         EQU         $1C                       ; new name pointer [pointer]
  547.  
  548. ; specific fields for _GetFileInfo, _SetFileInfo
  549.  
  550. ioFQElSize        EQU         $50                       ; File command parameter length [80 bytes]
  551. ioFDirIndex       EQU         $1C                       ; directory index of file [word]
  552. ioFlAttrib        EQU         $1E                       ; in-use bit=7, lock bit=0 [byte]
  553. ioFFlType         EQU         $1F                       ; file type [byte]
  554. ioFlUsrWds        EQU         $20                       ; finder info [16 bytes]
  555. ioFFlNum          EQU         $30                       ; file number [long]
  556. ioFlStBlk         EQU         $34                       ; start file block (0000 if none) [word]
  557. ioFlLgLen         EQU         $36                       ; logical length (EOF) [long]
  558. ioFlPyLen         EQU         $3A                       ; physical length in bytes [long]
  559. ioFlRStBlk        EQU         $3E                       ; resource fork's start file block [word]
  560. ioFlRLgLen        EQU         $40                       ; resource fork's logical length (EOF) [long]
  561. ioFlRPyLen        EQU         $44                       ; resource fork's physical length [long]
  562. ioFlCrDat         EQU         $48                       ; creation date & time [long]
  563. ioFlMdDat         EQU         $4C                       ; last modification date & time [long]
  564.  
  565. ; Specific fields for _GetEOF, _SetEOF
  566.  
  567. ioLEOF            EQU         $1C                       ; logical end-of-file [long]
  568.  
  569. ; Specific fields for _SetFileType
  570.  
  571. ioNewType         EQU         $1C                       ; new type byte [byte]
  572.  
  573. ; Specific fields for _GetVolInfo, _GetVolume, _SetVolume, _MountVol, _UnmountVol,
  574. ; _Eject. Note that these traps have a bigger record size.
  575.  
  576. ioVQElSize        EQU         $40                       ; Volume command parameter length [64 bytes]
  577. ioVDrvNum         EQU         $16                       ; drive or volume number [word]
  578. ioVNPtr           EQU         $12                       ; name buffer (or zero) [pointer]
  579. ioVolIndex        EQU         $1C                       ; volume index number [word]
  580. ioVCrDate         EQU         $1E                       ; creation date & time [long]
  581. ioVLsBkUp         EQU         $22                       ; last backup date & time [long]
  582. ioVAtrb           EQU         $26                       ; Volume attributes [word]
  583. ioVNmFls          EQU         $28                       ; # files in directory [word]
  584. ioVDirSt          EQU         $2A                       ; start block of file dir [word]
  585. ioVBlLn           EQU         $2C                       ; length of dir in blocks [word]
  586. ioVNmAlBlks       EQU         $2E                       ; num blks (of alloc size) this dev [word]
  587. ioVAlBlkSiz       EQU         $30                       ; alloc blk byte size [long]
  588. ioVClpSiz         EQU         $34                       ; bytes to try to allocate at a time [long]
  589. ioAlBlSt          EQU         $38                       ; starting block in block map [word]
  590. ioVNxtFNum        EQU         $3A                       ; next free file number [long]
  591. ioVFrBlk          EQU         $3E                       ; # free alloc blks for this vol [word]
  592.  
  593. ; Catalog structure equates:
  594.  
  595. fsRtParID         EQU         1                         ; DirID of parent's root
  596. fsRtDirID         EQU         2                         ; Root DirID
  597. fsXTCNID          EQU         3                         ; Extent B*-Tree file ID
  598. fsCTCNID          EQU         4                         ; Catalog B*-Tree file ID
  599. fsBBCNID        EQU            5                        ; Bad Block "file" ID
  600. fsUsrCNID         EQU         $10                       ; First assignable user CNode ID
  601.  
  602. ; Additional equates for all calls:
  603.  
  604. ioDirID           EQU         $30                       ; directory ID
  605. ioHQElSize        equ            $34                        ; size of a standard HFS call queue element
  606.  
  607. ; Additional equates for catalog information return:
  608.  
  609. ioFlBkDat         EQU         $50                       ; File's last backup date
  610. ioFlxFndrInfo     EQU         $54                       ; File's additional finder info bytes
  611. ioFlParID         EQU         $64                       ; File's parent directory ID
  612. ioFlClpSiz        EQU         $68                       ; File's clump size, in bytes
  613.  
  614. ; Additional equates for directory information return:
  615.  
  616. ioDirFlg          EQU         4                         ; Bit in ioFlAttrb set to indicate directory
  617. ioDrUsrWds        EQU         $20                       ; Directory's user info bytes
  618. ioDrDirID         EQU         $30                       ; Directory ID
  619. ioDrNmFls         EQU         $34                       ; Number of files in a directory
  620. ioDrCrDat         EQU         $48                       ; Directory creation date
  621. ioDrMdDat         EQU         $4C                       ; Directory modification date
  622. ioDrBkDat         EQU         $50                       ; Directory backup date
  623. ioDrFndrInfo      EQU         $54                       ; Directory finder info bytes
  624. ioDrParID         EQU         $64                       ; Directory's parent directory ID
  625. ioHFQElSiz        EQU         $6C                       ; Size of a Hierarchical File Queue Element
  626.  
  627. ; Additional equates for _TFGetVolInfo:
  628.  
  629. ioVLsMod          EQU         $22                       ; Last modification date
  630. ioVSigWord        EQU         $40                       ; Volume signature
  631. ioVCBVBMst        EQU         $2A
  632. ioVNxtCNID        EQU         $3A
  633. ioVDrvInfo        EQU         $42                       ; Drive number (0 if volume is offline)
  634. ioVDRefNum        EQU         $44                       ; Driver refNum
  635. ioVFSID           EQU         $46                       ; ID of file system handling this volume
  636. ioVBkup           EQU         $48                       ; Last backup date (0 if never backed up)
  637. ioVSeqNum         EQU         $4C                       ; Sequence number of this volume in volume set
  638. ioVWrCnt          EQU         $4E                       ; Volume write count
  639. ioVFilCnt         EQU         $52                       ; Total number of files on volume
  640. ioVDirCnt         EQU         $56                       ; Total number of directories on the volume
  641. ioVFndrInfo       EQU         $5A                       ; Finder information for volume
  642. ioHVQElSize       EQU         $7A                       ; Length of Hierarchical Volume information PB
  643.  
  644. ; fields for _GetFCBInfo:
  645.  
  646. ioFCBIndx         EQU         $1C                       ; FCB index for _GetFCBInfo
  647. ioFCBFiller1      EQU         $1E                       ; filler
  648. ioFCBFlNm         EQU         $20                       ; File number
  649. ioFCBFlags        EQU         $24                       ; FCB flags
  650. ioFCBStBlk        EQU         $26                       ; File start block
  651. ioFCBEOF          EQU         $28                       ; Logical end-of-file
  652. ioFCBPLen         EQU         $2C                       ; Physical end-of-file
  653. ioFCBCrPs         EQU         $30                       ; Current file position
  654. ioFCBVRefNum      EQU         $34                       ; Volume refNum
  655. ioFCBClpSiz       EQU         $36                       ; File clump size
  656. ioFCBParID        EQU         $3A                       ; Parent directory ID
  657. ioFCBQElSize      EQU         $3E                       ; extended size of FCBPBRec
  658.  
  659. ; fields for _GetWDInfo:
  660.  
  661. ioWDIndex         EQU         $1A                       ; Working Directory index for _GetWDInfo
  662. ioWDProcID        EQU         $1C                       ; WD's ProcID (long)
  663. ioWDVRefNum       EQU         $20                       ; WD's Volume RefNum (word)
  664. ioWDDirID         EQU         $30                       ; WD's DirID (long)
  665.  
  666. ; fields for _FSControl call:
  667.  
  668. ioFSVrsn          EQU         $20                       ; File system version
  669.  
  670. ; field for CatMove
  671.  
  672. ioNewDirID        EQU         $24                       ;destination directory for CatMove
  673.  
  674. ; fields for GetLogInInfo
  675.  
  676. ioObjNamePtr    equ            $1C                        ; pointer to buffer for name of log-in
  677.  
  678. ; fields for GetDirAccess and SetDirAccess
  679.  
  680. ioACOwnerID        equ            $24                        ; owner field of parameter block
  681. ioACGroupID        equ            $28                        ; group field of parameter block
  682. ioACAccess        equ            $2C                        ; access privileges
  683.  
  684. ; values of user IDs and group IDs
  685.  
  686. noUser            equ            0                        ; no user
  687. administratorUser    equ        1                        ; administrator’s user number
  688. noGroup            equ            0                        ; no group
  689.  
  690. ; values of access privileges
  691.  
  692. fullPrivileges    equ            $00070007                ; all privileges for everybody and owner
  693. ownerPrivileges equ            $00000007                ; all privileges for owner only
  694.  
  695. ; Specific fields for CatSearch
  696.  
  697. ioMatchPtr        EQU        $18                    ; match buffer pointer
  698. ioReqMatchCount EQU        $1C                    ; maximum match count
  699. ioActMatchCount EQU        $20                    ; actual match count
  700. ioSearchBits    EQU        $24                    ; search criteria selector
  701. ioSearchInfo1    EQU        $28                    ; search values and range lower bounds
  702. ioSearchInfo2    EQU        $2C                    ; search values and range upper bounds
  703. ioSearchTime    EQU        $30                    ; length of time to run search
  704. ioCatPosition    EQU        $34                    ; catalog position information
  705. ioOptBuffer        EQU        $44                    ; optional read buffer
  706. ioOptBufSize    EQU        $48                    ; length of optional read buffer
  707.  
  708. ; Specific fields for FileID calls
  709.  
  710. ioNamePtr         EQU         $12                       ; name ptr of file
  711. ioDestNamePtr     EQU         $1C                       ; name ptr of destination file (FIDExchangeFiles only)
  712. ioDestDirID       EQU         $24                       ; directory id of destination file (FIDExchangeFiles only)
  713. ioSrcDirID        EQU         $30                       ; directory id of file specified.
  714. ioFileID          EQU         $36                       ; file id of file
  715.  
  716. ; Specific fields for Get/SetForeignPrivs
  717. ioForeignPrivInfo1    EQU        $2C
  718. ioForeignPrivInfo2    EQU        $30
  719. ioForeignPrivInfo3    EQU        $34
  720. ioForeignPrivInfo4    EQU        $38
  721.  
  722. ; specific fields for MakeFSSpec
  723. ioFSSpecPtr            EQU        $1C
  724.  
  725. ; Specific fields for device _Open
  726.  
  727. ioMix             EQU         $1C                       ; General purpose field imported by driver[long]
  728. ioFlags           EQU         $20                       ; General purpose flags [word]
  729. ioSlot            EQU         $22                       ; Slot [byte]
  730. ioId              EQU         $23                       ; Id [byte]
  731. ioSEBlkPtr        EQU         $22                       ; Pointer to the seBlock [long]
  732.  
  733. ; ioFlags:
  734. fMulti            EQU         $00                       ; b0 = fMulti: ioSEBlkPtr is valid (ioSlot, ioId are invalid)
  735.  
  736. ; Specific fields for _Control, _Status
  737.  
  738. csCode            EQU         $1A                       ; control/status code [word]
  739. csParam           EQU         $1C                       ; operation-defined parameters [22 bytes]
  740.  
  741. ; FInfo (Finder Information) record layout
  742.  
  743. fdType            EQU         $0                        ; type of file [long]
  744. fdCreator         EQU         $4                        ; file's creator [long]
  745. fdFlags           EQU         $8                        ; flags [word]
  746. fdLocation        EQU         $A                        ; file's location [point]
  747. fdFldr            EQU         $E                        ; file's window [word]
  748.  
  749. ; added for HFS
  750.  
  751. ; FXInfo record layout
  752.  
  753. fdIconID          EQU         $0                        ; Icon ID [word]
  754. fdUnused          EQU         $2                        ; unused but reserved [3 words]
  755. fdScript        EQU            $8                        ; script flag and number [byte]
  756. fdXFlags        EQU            $9                        ; more flags bits [byte]
  757. fdComment         EQU         $A                        ; Comment ID [word]
  758. fdPutAway         EQU         $C                        ; Home Dir ID [2 words]
  759.  
  760. ; DInfo record layout
  761.  
  762. frRect            EQU         $0                        ; Folder Rect [4 words]
  763. frFlags           EQU         $8                        ; Flags [word]
  764. frLocation        EQU         $A                        ; Location [2 words]
  765. frView            EQU         $E                        ; Folder view [word]
  766.  
  767. ; DXInfo record layout
  768.  
  769. frScroll          EQU         $0                        ; scroll position [2 words]
  770. frOpenChain       EQU         $4                        ; dirID chain of open folders [2 words]
  771. frScript        EQU            $8                        ; script flag and number [byte]
  772. frXFlags        EQU            $9                        ; more flags bits [byte]
  773. frComment         EQU         $A                        ; comment [word]
  774. frPutAway         EQU         $C                        ; Dir ID [2 words]
  775.  
  776. ;end of addition
  777.  
  778. ; Masks for fdFlags field of FInfo record defined above
  779.  
  780. fOnDesk           EQU         1
  781. fHasBundle        EQU         8192                      ; set if file has a bundle
  782. fInvisible        EQU         16384                     ; set if file's icon is invisible
  783. fTrash            EQU         -3                        ; file is in Trash window
  784. fDeskTop          EQU         -2                        ; file is on desktop
  785. fDisk             EQU         0                         ; file is in disk window
  786.  
  787. ; File System Globals
  788.  
  789. DrvQHdr           EQU         $308                      ; queue header of drives in system [10 bytes]
  790. BootDrive         EQU         $210                      ; drive number of boot drive [word]
  791. EjectNotify       EQU         $338                      ; eject notify procedure [pointer]
  792. IAZNotify         EQU         $33C                      ; world swaps notify procedure [pointer]
  793. SFSaveDisk        EQU         $214                      ; last vRefNum seen by standard file [word]
  794. CurDirStore       EQU         46+$36A                   ; save dir across calls to Standard File [long]
  795.  
  796.  
  797. ;+ Date-Time record (for use with _Secs2Date, and _Date2Secs)
  798.  
  799. DateTimeRec     RECORD        0                        ; moved here from ScriptEqu.a <04/23/89 pke>
  800. year            DS.W        1
  801. month            DS.W        1
  802. day             DS.W        1
  803. hour            DS.W        1
  804. minute            DS.W        1
  805. second            DS.W        1
  806. dayOfWeek        DS.W        1
  807. DateTimeRecSize    EQU            *
  808. size            equ            *
  809.                 ENDR
  810.  
  811. dtYear            EQU         $0                        ; year (1904..) [word]
  812. dtMonth           EQU         $2                        ; month (1..12) [word]
  813. dtDay             EQU         $4                        ; day (1..31) [word]
  814. dtHour            EQU         $6                        ; hour (0..23) [word]
  815. dtMinute          EQU         $8                        ; minute (0..59) [word]
  816. dtSecond          EQU         $A                        ; second (0..59) [word]
  817. dtDayOfWeek       EQU         $C                        ; day of week, sunday..saturday (1..7) [word]
  818.  
  819.  
  820. ;+ Miscellaneous stuff
  821.  
  822. OneOne            EQU         $A02                      ; constant $00010001 [long]
  823. MinusOne          EQU         $A06                      ; constant $FFFFFFFF [long]
  824. Lo3Bytes          EQU         $31A                      ; constant $00FFFFFF [long]
  825. ROMBase           EQU         $2AE                      ; ROM base address [pointer]
  826. RAMBase           EQU         $2B2                      ; RAM base address [pointer]
  827. SysVersion        EQU         $15A                      ; version # of RAM-based system [word]
  828. RndSeed           EQU         $156                      ; random seed/number [long]
  829.  
  830. ; fields for _GetDefaultStartup: [DefStartRec]
  831. ; SlotDev:
  832. sdExtDevID        EQU         $0                        ; [byte]
  833. sdPartition       EQU         $1                        ; [byte]
  834. sdSlotNum         EQU         $2                        ; [byte]
  835. sdSRsrcID         EQU         $3                        ; [byte]
  836. ; SCSIDev:
  837. sdReserved1       EQU         $0                        ; [byte]
  838. sdReserved2       EQU         $1                        ; [byte]
  839. sdRefNum          EQU         $2                        ; [word]
  840.  
  841. ; fields for _GetVideoDefault: [DefVideoRec]
  842.  
  843. sdSlot            EQU         $0                        ; [byte]
  844. sdSResource       EQU         $1                        ; [byte]
  845.  
  846. ; fields for _GetOSDefault: [DefOSRec]
  847.  
  848. sdReserved        EQU         $0                        ; [byte]
  849. sdOSType          EQU         $1                        ; [byte]
  850.  
  851.  
  852. ;+ Machine Name Resource
  853. nameRsrcID        EQU            -16395                    ; STR# rsrc in System file containing
  854.                                                     ; machine names.
  855.  
  856. ;+ SysEnvirons info
  857.  
  858.  
  859. SysEnvRec         RECORD      0
  860. environsVersion   DS.W        1
  861. machineType       DS.W        1
  862. systemVersion     DS.W        1
  863. processor         DS.W        1
  864. hasFPU            DS.B        1
  865. hasColorQD        DS.B        1
  866. keyBoardType      DS.W        1
  867. atDrvrVersNum     DS.W        1
  868. sysVRefNum        DS.W        1
  869.                   ALIGN       2
  870. sysEnv1Size       EQU         *-SysEnvRec               ; size for version 1
  871. size            equ            *
  872.                   ENDR
  873.  
  874. curSysEnvVers     EQU         1                         ; latest SysEnvirons version
  875.  
  876. ; return values
  877.  
  878. envXL             EQU         -2                        ; for the glue (double sigh)
  879. envMac            EQU         -1                        ; for the glue (sigh)
  880. envMachUnknown    EQU         0
  881. env512KE          EQU         1
  882. envMacPlus        EQU         2
  883. envSE             EQU         3
  884. envMacII          EQU         4
  885. envMacIIx         EQU         5
  886. envMacIIcx        EQU         6
  887. envSE30           EQU         7
  888. envPortable       EQU         8
  889. envMacIIci        EQU         9
  890. envMacIIfx        EQU            11
  891.  
  892. envCPUUnknown     EQU         0                         ; CPU types
  893. env68000          EQU         1
  894. env68010          EQU         2
  895. env68020          EQU         3
  896. env68030          EQU         4
  897. env68040        EQU            5                        ; <4.8>
  898.  
  899. envUnknownKbd     EQU         0                         ; Keyboard types
  900. envMacKbd         EQU         1
  901. envMacAndPad      EQU         2
  902. envMacPlusKbd     EQU         3
  903. envAExtendKbd     EQU         4
  904. envStandADBKbd    EQU         5
  905. envPrtblADBKbd    EQU            6                        ; <4.9>
  906. envPrtblISOKbd    EQU         7
  907. envStdISOADBKbd   EQU         8
  908. envExtISOADBKbd   EQU         9
  909.  
  910.  
  911. ;+ Scratch Areas
  912.  
  913. Scratch20         EQU         $1E4                      ; scratch [20 bytes]
  914. Scratch8          EQU         $9FA                      ; scratch [8 bytes]
  915.  
  916.  
  917. ;+ Scrap Manager
  918.  
  919. ScrapSize         EQU         $960                      ; scrap length [long]
  920. ScrapHandle       EQU         $964                      ; memory scrap [handle]
  921. ScrapCount        EQU         $968                      ; validation byte [word]
  922. ScrapState        EQU         $96A                      ; scrap state [word]
  923. ScrapName         EQU         $96C                      ; pointer to scrap name [pointer]
  924.  
  925.  
  926. ;+ Desk Accessories
  927.  
  928.  
  929. ; Message Definitions (in CSCode of control call)
  930.  
  931. accEvent          EQU         $40                       ; event message from SystemEvent
  932. accRun            EQU         $41                       ; run message from SystemTask
  933. accCursor         EQU         $42                       ; cursor message from SystemTask
  934. accMenu           EQU         $43                       ; menu message from SystemMenu
  935. accUndo           EQU         $44                       ; undo message from SystemEdit
  936. accCut            EQU         $46                       ; cut message from SystemEdit
  937. accCopy           EQU         $47                       ; copy message from SystemEdit
  938. accPaste          EQU         $48                       ; paste message from SystemEdit
  939. accClear          EQU         $49                       ; clear message from SystemEdit
  940. goodBye           EQU         -1                        ; goodbye message
  941.  
  942.  
  943.                   IF          wholeSystem=1 THEN
  944.  
  945. ;International stuff
  946.  
  947. IntlSpec          EQU         $BA0                      ; (long) - ptr to extra Intl data
  948.  
  949. ;Switcher
  950.  
  951. SwitcherTPtr      EQU         $286                      ; Switcher's switch table 
  952.  
  953. ; Trap bits for memory manager
  954.  
  955. tSysOrCurZone     EQU         10                        ; bit set implies System Zone
  956. ; bit clear implies Current Zone
  957. clearBit          EQU         9                         ; bit set means clear allocated memory.
  958.  
  959.  
  960. ; Peripheral chips and Magic Hardware addresses
  961.  
  962. CPUFlag           EQU         $12F                      ; $00=68000, $01=68010, $02=68020 (old ROM inits to $00)
  963. cpu68000        EQU            0
  964. cpu68010        EQU            1
  965. cpu68020        EQU            2
  966. cpu68030        EQU            3
  967. cpu68040        EQU            4
  968.  
  969. ; VIA (6522) interface chip
  970.  
  971. VIA               EQU         $1D4                      ; VIA base address [pointer]
  972.  
  973. ; Disk Address
  974.  
  975. IWM               EQU         $1E0                      ; IWM base address [pointer]
  976.  
  977.  
  978. ; Interrupt secondary vectors
  979.  
  980. Lvl1DT            EQU         $192                      ; Interrupt level 1 dispatch table [32 bytes]
  981. Lvl2DT            EQU         $1B2                      ; Interrupt level 2 dispatch table [32 bytes]
  982. ExtStsDT          EQU         $2BE                      ; SCC ext/sts secondary dispatch table [16 bytes]
  983.  
  984.  
  985.  
  986. ; Parameter Ram
  987.  
  988. SPValid           EQU         $1F8                      ; validation field ($A7) [byte]
  989. SPATalkA          EQU         $1F9                      ; AppleTalk node number hint for port A
  990. SPATalkB          EQU         $1FA                      ; AppleTalk node number hint for port B
  991. SPAlarm           EQU         $200                      ; alarm time [long]
  992. SPFont            EQU         $204                      ; default application font number minus 1 [word]
  993. SPKbd             EQU         $206                      ; kbd repeat thresh in 4/60ths [2 4-bit]
  994. SPPrint           EQU         $207                      ; print stuff [byte]
  995. SPVolCtl          EQU         $208                      ; volume control [byte]
  996. SPClikCaret       EQU         $209                      ; double click/caret time in 4/60ths[2 4-bit]
  997. SPMisc1           EQU         $20A                      ; miscellaneous [1 byte]
  998. SPMisc2           EQU         $20B                      ; miscellaneous [1 byte]
  999. GetParam          EQU         $1E4                      ; system parameter scratch [20 bytes]
  1000. SysParam          EQU         $1F8                      ; system parameter memory [20 bytes]
  1001.  
  1002. ; Cursor
  1003.  
  1004. CrsrThresh        EQU         $8EC                      ; delta threshold for mouse scaling [word]
  1005. JCrsrTask         EQU         $8EE                      ; address of CrsrVBLTask [long]
  1006. MTemp             EQU         $828                      ; Low-level interrupt mouse location [long]
  1007. RawMouse          EQU         $82C                      ; un-jerked mouse coordinates [long]
  1008. CrsrRect          EQU         $83C                      ; Cursor hit rectangle [8 bytes]
  1009. TheCrsr           EQU         $844                      ; Cursor data, mask & hotspot [68 bytes]
  1010. CrsrAddr          EQU         $888                      ; Address of data under cursor [long]
  1011. CrsrSave          EQU         $88C                      ; data under the cursor [64 bytes]
  1012. CrsrVis           EQU         $8CC                      ; Cursor visible? [byte]
  1013. CrsrBusy          EQU         $8CD                      ; Cursor locked out? [byte]
  1014. CrsrNew           EQU         $8CE                      ; Cursor changed? [byte]
  1015. CrsrState         EQU         $8D0                      ; Cursor nesting level [word]
  1016. CrsrObscure       EQU         $8D2                      ; Cursor obscure semaphore [byte]
  1017.  
  1018. ; Mouse/Keyboard
  1019.  
  1020. KbdVars           EQU         $216                      ; Keyboard manager variables [4 bytes]
  1021. KbdType           EQU         $21E                      ; keyboard model number [byte]
  1022. MBState           EQU         $172                      ; current mouse button state [byte]
  1023. KeyMap            EQU         $174                      ; bitmap of the keyboard [2 longs]
  1024. KeypadMap         EQU         $17C                      ; bitmap for numeric pad-18bits [long]
  1025. Key1Trans         EQU         $29E                      ; keyboard translator procedure [pointer]
  1026. Key2Trans         EQU         $2A2                      ; numeric keypad translator procedure [pointer]
  1027. JGNEFilter        EQU         $29A                      ; GetNextEvent filter proc [pointer]
  1028. KeyMVars          EQU         $B04                      ; (word) for ROM KEYM proc state
  1029. Mouse             EQU         $830                      ; processed mouse coordinate [long]
  1030. CrsrPin           EQU         $834                      ; cursor pinning rectangle [8 bytes]
  1031. CrsrCouple        EQU         $8CF                      ; cursor coupled to mouse? [byte]
  1032. CrsrScale         EQU         $8D3                      ; cursor scaled? [byte]
  1033. MouseMask         EQU         $8D6                      ; V-H mask for ANDing with mouse [long]
  1034. MouseOffset       EQU         $8DA                      ; V-H offset for adding after ANDing [long]
  1035.  
  1036. ; System Clocks
  1037.  
  1038. AlarmState        EQU         $21F                      ; Bit7=parity, Bit6=beeped, Bit0=enable [byte]
  1039.  
  1040.  
  1041. ;+ Vertical Blanking Interrupt Handler
  1042.  
  1043. ; VBL Block Queue Element
  1044.  
  1045. vType             EQU         1                         ; VBL queue element is type 1
  1046. inVbl             EQU         6                         ; bit index for "in VBL" flag
  1047. vblink            EQU         0                         ; Link to next element [pointer]
  1048. vblType           EQU         4                         ; Unique ID for validity [word]
  1049. vblAddr           EQU         6                         ; service routine [pointer]
  1050. vblCount          EQU         $A                        ; timeout count [word]
  1051. vblPhase          EQU         $C                        ; phase count [word]
  1052. VBLQueue          EQU         $160                      ; VBL queue header [10 bytes]
  1053.  
  1054. ; Event manager
  1055.  
  1056. jPlayCtl          EQU         16                        ; playBack call
  1057. jRecordCtl        EQU         17                        ; record call
  1058. jcTickCount       EQU         0                         ; journal code for TickCount
  1059. jcGetMouse        EQU         1                         ; journal code for GetMouse
  1060. jcButton          EQU         2                         ; journal code for Button
  1061. jcGetKeys         EQU         3                         ; journal code for GetKeys
  1062. jcEvent           EQU         4                         ; journal code for GetNextEvent(Avail)
  1063. SysEvtMask        EQU         $144                      ; system event mask [word]
  1064. SysEvtBuf         EQU         $146                      ; system event queue element buffer [pointer]
  1065. EventQueue        EQU         $14A                      ; event queue header [10 bytes]
  1066. EvtBufCnt         EQU         $154                      ; max number of events in SysEvtBuf - 1 [word]
  1067.  
  1068. ; Event Queue Element Data Stucture
  1069.  
  1070. evtQWhat          EQU         6                         ; event code [word]
  1071. evtQMessage       EQU         8                         ; event message [long]
  1072. evtQWhen          EQU         $C                        ; ticks since startup [long]
  1073. evtQWhere         EQU         $10                       ; mouse location [long]
  1074. evtQMeta          EQU         $14                       ; state of modifier keys [byte]
  1075. evtQMBut          EQU         $15                       ; state of mouse button [byte]
  1076. evtQBlkSize       EQU         $16                       ; size of event record counting queue info
  1077.  
  1078. ; flags in flags field in heapzone header
  1079.  
  1080. fOnCheck          EQU         0                         ; Turn On Checking
  1081. fChecking         EQU         1                         ; Checking on
  1082. fNSelCompct       EQU         4                         ; Use non-selective compact algorithm when 1.
  1083. fNoRvrAlloc       EQU         5                         ; Don't use rover allocation scheme when 1.
  1084. fNSelPurge        EQU         6                         ; Use non-selective purge algorithm when 1.
  1085. fRelAtEnd         EQU         7                         ; MakeBk packs rels at end of free bk when 1.
  1086. ROZ               EQU         $0                        ; bit in flags field of MemMgr zone header
  1087.  
  1088. ; Block Types
  1089.  
  1090. tybkMask          EQU         3                         ; Mask for block type
  1091. tybkFree          EQU         0                         ; Free Block
  1092. tybkNRel          EQU         1                         ; Non-Relocatable
  1093. tybkRel           EQU         2                         ; Relocatable
  1094.  
  1095. ; Block Offsets
  1096.  
  1097. tagBC             EQU         0                         ; Tag and Byte Count field [long]
  1098. handle            EQU         4                         ; back pointer to master pointer [pointer]
  1099. blkData           EQU         8                         ; data starts here
  1100.  
  1101. ; Heap Zone header
  1102.  
  1103. bkLim             EQU         $0                        ; last block in zone [pointer]
  1104. purgePtr          EQU         $4                        ; roving purge placeholder [pointer]
  1105. hFstFree          EQU         $8                        ; first free handle [pointer]
  1106. zcbFree           EQU         $C                        ; # of free bytes in zone [long]
  1107. gzProc            EQU         $10                       ; grow zone procedure [pointer]
  1108. mAllocCnt         EQU         $14                       ; # of master ptrs to allocate [word]
  1109. flags             EQU         $16                       ; Flags [word]
  1110. cntRel            EQU         $18                       ; # of allocated relocatable blocks [word]
  1111. maxRel            EQU         $1A                       ; max # of allocated rel. blocks [word]
  1112. cntNRel           EQU         $1C                       ; # of allocated non-rel. blocks [word]
  1113. maxNRel           EQU         $1E                       ; max # of allocated non-rel. blocks [word]
  1114. cntEmpty          EQU         $20                       ; # of empty handles [word]
  1115. cntHandles        EQU         $22                       ; total # of handles [word]
  1116. minCBFree         EQU         $24                       ; min # of bytes free [long]
  1117. purgeProc         EQU         $28                       ; purge warning procedure [pointer]
  1118. allocPtr          EQU         $30                       ; roving allocator [pointer]
  1119. heapData          EQU         $34                       ; start of heap zone data
  1120.  
  1121.  
  1122.  
  1123. GZRootHnd         EQU         $328                      ; root handle for GrowZone [handle]
  1124. GZRootPtr         EQU         $32C                      ; root pointer for GrowZone [pointer]
  1125. GZMoveHnd         EQU         $330                      ; moving handle for GrowZone [handle]
  1126. MemTop            EQU         $108                      ; top of memory [pointer]
  1127. MmInOK            EQU         $12E                      ; initial memory mgr checks ok? [byte]
  1128. HpChk             EQU         $316                      ; heap check RAM code [pointer]
  1129. MaskBC            EQU         $31A                      ; Memory Manager Byte Count Mask [long]
  1130. MaskHandle        EQU         $31A                      ; Memory Manager Handle Mask [long]
  1131. MaskPtr           EQU         $31A                      ; Memory Manager Pointer Mask [long]
  1132. MinStack          EQU         $31E                      ; min stack size used in InitApplZone [long]
  1133. DefltStack        EQU         $322                      ; default size of stack [long]
  1134. MMDefFlags        EQU         $326                      ; default zone flags [word]
  1135.  
  1136. ;+ System Error Handler
  1137.  
  1138. DSAlertTab        EQU         $2BA                      ; system error alerts [pointer]
  1139. DSAlertRect       EQU         $3F8                      ; rectangle for disk-switch alert [8 bytes]
  1140. DSDrawProc        EQU         $334                      ; alternate syserror draw procedure [pointer]
  1141. DSWndUpdate       EQU         $15D                      ; GNE not to paintBehind DS AlertRect? [byte]
  1142. WWExist           EQU         $8F2                      ; window manager initialized? [byte]
  1143. QDExist           EQU         $8F3                      ; quickdraw is initialized [byte]
  1144. ResumeProc        EQU         $A8C                      ; Resume procedure from InitDialogs [pointer]
  1145. DSErrCode         EQU         $AF0                      ; last system error alert ID
  1146.  
  1147. ;+ Drivers
  1148.  
  1149. dskRfN            EQU         $FFFB                     ; 3.5" disk reference number
  1150. IntFlag           EQU         $15F                      ; reduce interrupt disable time when bit 7 = 0
  1151.  
  1152. ; Serial I/O Driver
  1153.  
  1154. SerialVars        EQU         $2D0                      ; async driver variables [16 bytes]
  1155. ABusVars          EQU         $2D8                      ;Pointer to AppleTalk local variables
  1156. ABusDCE           EQU         $2DC                      ;Pointer to AppleTalk DCE
  1157. PortAUse          EQU         $290                      ; bit 7: 1 = not in use, 0 = in use
  1158. ; bits 0-3: current use of port (see use type)
  1159. ; bits 4-6: user specific
  1160. PortBUse          EQU         $291                      ; port B use, same format as PortAUse
  1161. SCCASts           EQU         $2CE                      ; SCC read reg 0 last ext/sts rupt - A [byte]
  1162. SCCBSts           EQU         $2CF                      ; SCC read reg 0 last ext/sts rupt - B [byte]
  1163.  
  1164. ; Serial handshake record definition
  1165.  
  1166. shFXOn            EQU         $0                        ; XOn/XOff output control flags [byte]
  1167. shFCTS            EQU         $1                        ; CTS hardware handshake flag [byte]
  1168. shXOn             EQU         $2                        ; XOn character [byte]
  1169. shXOff            EQU         $3                        ; XOff character [byte]
  1170. shErrs            EQU         $4                        ; errors that cause abort [byte]
  1171. shEvts            EQU         $5                        ; status changes that cause events [byte]
  1172. shFInX            EQU         $6                        ; XOn/XOff input flow control flag [byte]
  1173. shNull            EQU         $7                        ; not used [byte]
  1174.  
  1175. ; Serial status record definition
  1176.  
  1177. ssCumErrs         EQU         $0                        ; cumulative errors [byte]
  1178. ssXOffSent        EQU         $1                        ; XOff sent as input control flag [byte]
  1179. ssRdPend          EQU         $2                        ; read pending flag [byte]
  1180. ssWrPend          EQU         $3                        ; write pending flag [byte]
  1181. ssCTSHold         EQU         $4                        ; CTS flow control hold flag [byte]
  1182. ssXOffHold        EQU         $5                        ; XOff received as output flow control [byte]
  1183.  
  1184. ; Disk Driver
  1185.  
  1186. ; Driver Code Header (for I/O drivers, desk accessories)
  1187.  
  1188. drvrFlags         EQU         $0                        ; various flags and permissions [word]
  1189. drvrDelay         EQU         $2                        ; # of ticks between systask calls [word]
  1190. drvrEMask         EQU         $4                        ; event mask [word]
  1191. drvrMenu          EQU         $6                        ; driver menu ID [word]
  1192. drvrOpen          EQU         $8                        ; open routine offset [word]
  1193. drvrPrime         EQU         $A                        ; prime routine offset [word]
  1194. drvrCtl           EQU         $C                        ; control routine offset [word]
  1195. drvrStatus        EQU         $E                        ; status routine offset [word]
  1196. drvrClose         EQU         $10                       ; warmstart reset routine offset [word]
  1197. drvrName          EQU         $12                       ; length byte and name of driver [string]
  1198. ;drvrVersion EQU ??? ; Driver w/ highest version # installed [word]
  1199. ; This field's offset varies depending upon the length
  1200. ; of the Name field preceding it. It must be word aligned!
  1201.  
  1202. ; Driver Status record definition
  1203.  
  1204. dsTrack           EQU         $0                        ; current track [word]
  1205. dsWriteProt       EQU         $2                        ; bit 7=1 if volume locked [byte]
  1206. dsDiskInPlace     EQU         $3                        ; disk in place [byte]
  1207. dsInstalled       EQU         $4                        ; drive installed [byte]
  1208. dsSides           EQU         $5                        ; bit 7=0 if single-sided drive [byte]
  1209. dsQLink           EQU         $6                        ; next queue entry [pointer]
  1210. dsDQVers          EQU         $A                        ; 1 for HD20 [word]
  1211. dsDQDrive         EQU         $C                        ; drive number [word]
  1212. dsDQRefNum        EQU         $E                        ; driver reference number [word]
  1213. dsDQFSID          EQU         $10                       ; file-system identifier [word]
  1214. dsTwoSideFmt      EQU         $12                       ; -1 if two-sided disk [byte]
  1215. dsDiskErrs        EQU         $14                       ; error count [word]
  1216. dsDrvSize         EQU         $12                       ;drive block size low word [word]
  1217. dsDrvS1           EQU         $14                       ;drive block size high word [word]
  1218. dsDrvType         EQU         $16                       ;1 for HD20 [word]
  1219. dsDrvManf         EQU         $18                       ;1 for Apple Computer, Inc [word]
  1220. dsDrvChar         EQU         $1A                       ;230 ($E6) for HD20 [word]
  1221. dsDrvMisc         EQU         $1C                       ;0 -- reserved [byte]
  1222.  
  1223.  
  1224. DskErr            EQU         $142                      ; disk routine result code [word]
  1225. PWMBuf2           EQU         $312                      ; PWM buffer 1 (or 2 if sound) [pointer]
  1226.  
  1227. ; Drive command codes
  1228.  
  1229. dcRead            EQU         0
  1230. dcWrite           EQU         1
  1231. dcStatus          EQU         3
  1232. dcInit            EQU         25
  1233. dcScan            EQU         26
  1234.  
  1235. ; Sound Stuff
  1236.  
  1237. SoundPtr          EQU         $262                      ; 4VE sound definition table [pointer]
  1238. SoundBase         EQU         $266                      ; sound bitMap [pointer]
  1239. SoundVBL          EQU         $26A                      ; vertical retrace control element [16 bytes]
  1240. SoundDCE          EQU         $27A                      ; sound driver DCE [pointer]
  1241. SoundActive       EQU         $27E                      ; sound is active? [byte]
  1242. SoundLevel        EQU         $27F                      ; current level in buffer [byte]
  1243. CurPitch          EQU         $280                      ; current pitch value [word]
  1244.  
  1245. ; I/O System
  1246.  
  1247. noQueueBit        EQU         $9                        ; tells I/O system not to queue the request
  1248. asyncTrpBit       EQU         $A                        ; bit in high byte of trap specifying async
  1249. ToExtFS           EQU         $3F2                      ; hook for external file systems
  1250.  
  1251. ; File System Globals
  1252.  
  1253. DskVerify         EQU         $12C                      ; used by 3.5 disk driver for read/verify [byte]
  1254. TagData           EQU         $2FA                      ; sector tag info for disk drivers [14 bytes]
  1255. BufTgFNum         EQU         $2FC                      ; file number [long]
  1256. BufTgFFlg         EQU         $300                      ; flags [word]
  1257. BufTgFBkNum       EQU         $302                      ; logical block number [word]
  1258. BufTgDate         EQU         $304                      ; time stamp [word]
  1259.  
  1260. ; I/O Command Equates for I/O Queue Elements (match trap numbers)
  1261.  
  1262. aRdCmd            EQU         2                         ; read command
  1263. aWrCmd            EQU         3                         ; write command
  1264. aCtlCmd           EQU         4                         ; control command
  1265. aStsCmd           EQU         5                         ; status command
  1266.  
  1267. ; fields for _SetPMSP call: PMSP = "Poor Man's Search Path"
  1268.  
  1269. ioPMSPFlg         EQU         $1A                       ; Flag whether to enable the PMSP
  1270. ioPMSPHook        EQU         $1C                       ; Pointer to PMSP hook proc
  1271.  
  1272. ; Print variables
  1273.  
  1274. ScrDmpEnb         EQU         $2F8                      ; screen dump enabled? [byte]
  1275. ScrDmpType        EQU         $2F9                      ; FF dumps screen, FE dumps front window [byte]
  1276.  
  1277. ; Scrap Variables
  1278.  
  1279. ScrapVars         EQU         $960                      ; scrap manager variables [32 bytes]
  1280. ScrapInfo         EQU         $960                      ; scrap length [long]
  1281. ScrapEnd          EQU         $980                      ; end of scrap vars
  1282. ScrapTag          EQU         $970                      ; scrap file name [STRING[15]]
  1283.  
  1284. ; Segment Loader
  1285.  
  1286. LaunchFlag        EQU         $902                      ; from launch or chain [byte]
  1287. SaveSegHandle     EQU         $930                      ; seg 0 handle [handle]
  1288. CurJTOffset       EQU         $934                      ; current jump table offset [word]
  1289. CurPageOption     EQU         $936                      ; current page 2 configuration [word]
  1290. LoaderPBlock      EQU         $93A                      ; param block for ExitToShell [10 bytes]
  1291. CurApRefNum       EQU         $900                      ; refNum of application's resFile [word]
  1292. CurrentA5         EQU         $904                      ; current value of A5 [pointer]
  1293. CurStackBase      EQU         $908                      ; current stack base [pointer]
  1294. CurApName         EQU         $910                      ; name of application [STRING[31]]
  1295. LoadTrap          EQU         $12D                      ; trap before launch? [byte]
  1296. SegHiEnable       EQU         $BB2                      ; (byte) 0 to disable MoveHHi in LoadSeg
  1297.  
  1298. ;device manager - Chooser message values
  1299.  
  1300. newSelMsg         EQU         12                        ;a new selection has been made
  1301. fillListMsg       EQU         13                        ;fill the list with choices to be made
  1302. getSelMsg         EQU         14                        ;mark one or more choices as selcted
  1303. selectMsg         EQU         15                        ;a choice has actually been made
  1304. deselectMsg       EQU         16                        ;a choice has been canceled
  1305. terminateMsg      EQU         17                        ;lets device package clean up
  1306. buttonMsg         EQU         19                        ;a button has been clicked
  1307. psAlert           EQU         6                         ;page setup alert bit in HiliteMode
  1308. theChooser        EQU         1
  1309.  
  1310. ; cdev message types
  1311. initDev           EQU         0                         ; Time for cdev to initialize itself
  1312. hitDev            EQU         1                         ; Hit on one of my items
  1313. closeDev          EQU         2                         ; Close yourself
  1314. nulDev            EQU         3                         ; Null event
  1315. updateDev         EQU         4                         ; Update event
  1316. activDev          EQU         5                         ; Activate event
  1317. deactivDev        EQU         6                         ; Deactivate event
  1318. keyEvtDev         EQU         7                         ; Key down/auto key
  1319. macDev            EQU         8                         ; Decide whether or not to show up
  1320. undoDev            EQU            9                        ; Edit menu undo  (cmd-z).
  1321. cutDev            EQU            10                        ; Edit menu cut   (cmd-x).
  1322. copyDev            EQU            11                        ; Edit menu copy  (cmd-c).
  1323. pasteDev        EQU            12                        ; Edit menu paste (cmd-v).
  1324. clearDev        EQU            13                        ; Edit menu clear.
  1325. cursorDev        EQU            14                        ; Cursor panel area.
  1326.  
  1327. ; Monitors control panel messages
  1328. initMsg            EQU            1                        ; initialization
  1329. okMsg            EQU            2                        ; user clicked OK button
  1330. cancelMsg        EQU            3                        ; user clicked Cancel button
  1331. hitMsg            EQU            4                        ; user clicked control in Options dialog
  1332. nulMsg            EQU            5                        ; periodic event
  1333. updateMsg        EQU            6                        ; update event
  1334. activateMsg        EQU            7                        ; not used
  1335. deactivateMsg    EQU            8                        ; not used
  1336. keyEvtMsg        EQU            9                        ; keyboard event
  1337. superMsg        EQU            10                        ; show superuser controls
  1338. normalMsg        EQU            11                        ; show only normal controls
  1339. startupMsg        EQU            12                        ; code has been loaded
  1340.  
  1341. ; cdev error codes
  1342. cdevGenErr        EQU         -1                        ; General error; gray cdev w/o alert
  1343. cdevMemErr        EQU         0                         ; Memory shortfall; alert user please
  1344. cdevResErr        EQU         1                         ; Couldn't get a needed resource; alert
  1345. cdevUnset         EQU         3                         ; cdevValue is initialized to this
  1346. ;___________________________________________________________________________
  1347. ;
  1348. ; Background Notification Manager
  1349.  
  1350. BNMQHd            EQU         $B60                      ; head of background notification Q
  1351.  
  1352. ;___________________________________________________________________________
  1353. ;
  1354. ; Communications Toolbox Globals Pointer
  1355.  
  1356. CommToolboxGlobals    EQU         $BB4                  ; [long] pointer to CTB Globals <8>
  1357.  
  1358.  
  1359. ;___________________________________________________________________________
  1360. ; Memory Manager
  1361.  
  1362. defaultPhysicalEntryCount EQU    8            ; default number of physical blocks in table
  1363.  
  1364. ; values returned from the GetPageState function
  1365.  
  1366. kPageInMemory          EQU            0
  1367. kPageOnDisk            EQU            1
  1368. kNotPaged              EQU            2
  1369.  
  1370. MemoryBlock            RECORD        0
  1371. address                DS.L        1            ; start of block
  1372. count                DS.L        1            ; size of block
  1373. size                EQU            *            ; size of MemoryBlock
  1374.                     ENDR
  1375.  
  1376. LogicalToPhysicalTable RECORD    0
  1377. logical                DS.B        MemoryBlock    ; logical block
  1378. physical            EQU            *            ; equivalent physical blocks
  1379. size                EQU            *            ; minimum size of table
  1380. defaultSize            EQU            size + (MemoryBlock.size * defaultPhysicalEntryCount)
  1381.                     ENDR
  1382.  
  1383. ;___________________________________________________________________________
  1384. ;
  1385.  
  1386. JDoEject          EQU         4*($F7)+$0400             ; Sony Driver jump vectors
  1387.  
  1388.  
  1389.                   ENDIF
  1390.  
  1391.     ENDIF    ; if not already included...